<?php
namespace Admin\Controller;
use Think\Controller;
use Org\Util\String;
use Think\Page;
use Think\Upload;

	class CommonController extends Controller{
		
		
		public function getROOT() {
			return dirname(__FILE__).'/../../../';
		}
		
		Public function _initialize(){
   		// 初始化的时候检查用户权限
   			if(!isset($_SESSION['is_login']) || $_SESSION['is_login']=='' || $_SESSION['is_login']==0){
				$this->redirect('Login/login');
			}else {
				
			}
		}
		
		/**
		 * 
		 * 传入true时  说明是 有关联查询的 
		 */
		public function index($is_rela=false,$pagecount=15){
			
			$this -> getwithsearch($is_rela,$pagecount);
			
		}
		
		//这个 是 公共的 可以在外面 调用
		public  function getwithoutsearch(){ 
			
			$my_M = M(CONTROLLER_NAME); 
			
			$count      = $my_M->count();
			$Page       = new Page($count,6);
			$show       = $Page->show();
			// 进行分页数据查询 注意limit方法的参数要使用Page类的属性
			$list = $my_M-> where($map)->limit($Page->firstRow.','.$Page->listRows)->order('created_at desc')->select();
			$this->assign('data',$list);
			$this->assign('page',$show);
			
			$this->display(CONTROLLER_NAME.'/index');
		}
		
		//这个是 必须在内部 调用 
		private  function getwithsearch($is_rela,$pagecount){ //有搜索条件的 获取
			
			if($is_rela){
				$my_M = D(CONTROLLER_NAME); 
			}else {
				$my_M = M(CONTROLLER_NAME); 
			}
			$map = array(); 
    		$parameter = array();
			
    		//根据$_GET数组来 拼接 page参数 和 条件 参数 
			foreach ($_GET as $i => $val){
				
				if(!$val == NULL){
					if(strpos($i,'id')){
						$map[$i] = array('eq',$val); 
						$parameter[$i] = $val;
						$this->assign($i,$val);
					}else{
						$map[$i] = array('like','%'.$val.'%'); 
						$parameter[$i] = $val;
						$this->assign($i,$val);
					}
				}
				
			}
			
			$count      = $my_M-> where($map)->count();
			$Page       = new Page($count,$pagecount,$parameter);
			$show       = $Page->show();
			
			if($is_rela){
				$my_M-> relation(true);
			}
			
			$list = $my_M-> where($map)->limit($Page->firstRow.','.$Page->listRows)->order('id desc')->select();
			$this->assign('data',$list);
			$this->assign('page',$show);
			
			$this->display(CONTROLLER_NAME.'/index');
			
			
		}
		
		
		public function del(){
			$m=M(CONTROLLER_NAME);
			$id=$_GET['id'];
			$count=$m->delete($id);
			if($count>0){
				$this->show('del');
			}else{
				$this->show('error');
			}
		}
		
		public function lock(){
			$m=M(CONTROLLER_NAME);
			$id=$_GET['id'];
			$sta = $m-> where('id='.$id)->getField('status');
			if($sta>0){
				$m ->where('id='.$id)->setField('status','0');
				$this->show('unlock');
			}else{
				$m ->where('id='.$id)->setField('status','1');
				$this->show('lock');
			}
		}
		
		
		public function modify(){
			
			$id=$_GET['id'];
			$m=M(CONTROLLER_NAME);
			$arr=$m->find($id);
			$this->assign('data',$arr);
			
			
			$this->display(CONTROLLER_NAME.'/edit');
		}
		
		public function update($is_file=false){
			$m=D(CONTROLLER_NAME);
			if($is_file){
				$upload = new \Think\Upload();   
				$upload->maxSize   =     3145728 ;
				$upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');
				$upload->savePath  =      '/images/'; 
				// 上传文件 
				$info   =   $upload->uploadOne($_FILES['fileselect']);
				
				
				if(!$info) {// 上传错误提示错误信息
					unset($_POST['img']);
				}else{// 上传成功 获取上传文件信息
				    $_POST['img'] = '/Uploads'.$info['savepath'].$info['savename'];
					
					$imginfo = $m-> where('id='.$_POST['id'])->getField('img');
					//删除 原来的 图片 
					if(is_file(__ROOT__.$imginfo)) {
						//echo "删除 员图片 ";
						unlink(__ROOT__.$imginfo);
					}
				}
			}
			
			if(!$m->create()){
				$this->error($m->getError());
			}
			
			$idNum=$m->save();
			if($idNum>0){
				$this->success('修改成功','index');
			}else{
				$this->error('数据修改失败');
			}
		}
		
		
		public function add(){
			
			$this->display(CONTROLLER_NAME.'/add');
		}
		
		public function create($is_file=false){
			
			if($is_file){
				$this -> insertwithfile();
			}else $this -> insertwithoutfile();
			
		}
		
		public function insertwithoutfile(){
			
			
				$m=D(CONTROLLER_NAME);
				if(!$m->create()){
					$this->error($m->getError());
				}
				
				$idNum=$m->add();
				if($idNum>0){
					$this->success('添加数据成功','index');
				}else{
					$this->error('数据添加失败');
				}
			
			
		}
		
		private function insertwithfile(){
			
			$upload = new \Think\Upload();   
			$upload->maxSize   =     3145728 ;
			$upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');
			$upload->savePath  =      '/images/';
			// 上传文件 
			$info   =   $upload->uploadOne($_FILES['fileselect']);
			if(!$info) {// 上传错误提示错误信息
			    $this->error($upload->getError());
			}else{// 上传成功 获取上传文件信息
			    $_POST['img'] = '/Uploads'.$info['savepath'].$info['savename'];
				$m=D(CONTROLLER_NAME);
				if(!$m->create()){
					$this->error($m->getError());
				}
				
				$idNum=$m->add();
				if($idNum>0){
					$this->success('添加数据成功','index');
				}else{
					$this->error('数据添加失败');
				}
			}
			
		}
		
		
	}
?>